openapi: 3.1.1 info: title: APIs for Dassault Systèmes Partners description: APIs exposed by Dassault Systèmes to its partners and resellers. version: 0.6.1 license: name: Dassault Systèmes 2025 url: https://www.3ds.com/ x-logo: url: https://www.3ds.com/assets/3ds-navigation/3DS_corporate-logo_blue.svg altText: Dassault Systèmes backgroundColor: '#FFFFFF' servers: - url: https://apigw-prd.3ds.com description: Main (production) server - url: https://apigw-ppt.3ds.com description: Server for development by Partners (Non Production) - url: https://apigw-qal.3ds.com description: Server for Quality Assurance Testing (Non Production) - url: https://apigw-ptd.3ds.com description: Server for preprod validation (Non Production) - url: https://apigw-ppd.3ds.com description: Server for postprod validation (Non Production) security: - ApiKeyAuth: [] tags: - name: orders description: > This section defines the operations related to orders, including the creation, management, and fulfillment of orders. It provides a comprehensive overview of the order lifecycle, from initial request to final delivery. The operations in this section are designed to support the efficient and effective management of orders, ensuring that customers receive their products or services in a timely and satisfactory manner. The following operations are included in this section: * Searching Orders * Getting Order Details - name: apikeys description: > This section defines the operations related to API keys . Current API key management still requires some interaction with Dassault Systèmes Information System Team. This process will likely be updated in the future to provide more autonomy and reactivity on partner side. Below is the description of the process when a partner is onboarded on APIForPartners program : 1. Dassault Systèmes Information System will initialize an API key and communicate it to partner Admin through a secured channel : - **Recommendation is to use a 1-1 discussion between Partner Admin and Dassault Systèmes IS person in charge within the dedicated 3DSwym Community** - **Do NOT use email or any unsecured communication channel or with wider audience** 2. Partner Admin will then use this initial APIKEY value to authenticate and generate a new API key using the API 3. Partner admin will communicate back (within same secured channel) to Dassault Systèmes IS the **hashed_key** attributed from the API (NOT the API key itself) - The Hash operation is NOT reversible, so Dassault Systèmes will NOT have knowledge about partner API key. - Partner Admin must store securely the generated API key (same level of confidentiality as a password) 4. Dassault Systèmes IS Team will update API Gateway configuration with the new API key (in practice with the hash value provided) and inform Partner when it is ready to use. 5. Partner can then use this newly generated APIKEY to interact with all the available APIs. For the case of revocation and request of a new API key, steps 2 to 5 have to be followed. - name: leads-opportunities description: > This section defines the operations related to leads and opportunities for sales pipeline management. These ressources are managed with 'MySalesPipeline' application which implements Dassault Systèmes sales process called 'LEVERAGE' in accordance with the VALUE Engagement framework. LEVERAGE is an acronym that stands for Listen, Explore, Validate, Establish, Reach AGreement & Experience. - name: portfolio-items description: > This section defines the operations related to sales portfolio-items. The portfolio items are used in the definition of leads-opportunities in 'MySalesPipeline' application. paths: /order/api4partners/v0/orders/search: post: summary: Search Orders using various filters description: > Searches for orders based on various filter criteria such as creation date, booking date, last modified date, and more. Supports pagination through `skip` and `top` query parameters. tags: - orders operationId: searchOrders parameters: - name: skip in: query description: > The number of records to skip in the result set. Use this for paginating through results. Defaults to 0 if not specified. For example, `skip=20` will skip the first 20 records. schema: type: integer minimum: 0 default: 0 - name: top in: query description: > The maximum number of records to return in the response. Use this to limit the size of the result set. Defaults to 10 if not specified. For example, `top=10` will return up to 10 records starting from the position defined by `skip`. schema: type: integer minimum: 1 maximum: 100 default: 10 requestBody: description: > A JSON object specifying filter criteria for retrieving matching orders. The request must include at least one of the following sub-objects: - `creationDateTime` - `bookingDateTime` - `lastUpdateDateTime` - `installedBaseNumber` - `onlineInstanceSeatId` - `billToPoReferences` These will be combined using an AND operator if more than one is provided. content: application/json: schema: $ref: '#/components/schemas/orders_search_req' examples: basicSearchSingleCriteria: summary: >- Sample request body for searching orders using a single criterion description: > This example demonstrates how to search for orders using the `creationDateTime` criterion. If the `to` value is not provided under `creationDateTime`, it is implicitly set to either 7 days after the `from` timestamp or the current time—whichever is earlier. This JSON payload retrieves all orders created between `01-April-2025 1:30 AM UTC` and `08-April-2025 1:30 AM UTC`. value: creationDateTime: from: '2025-04-01T01:30:00Z' advancedSearchMultipleCriteria: summary: >- Sample request body for searching orders using multiple criteria description: > This example demonstrates how to search for orders using multiple criteria: - `creationDateTime` - `lastUpdateDateTime` - `installedBaseNumber` - `transactionType` If the `to` value is not provided under `creationDateTime`, it is implicitly set to either 7 days after the `from` timestamp or the current time—whichever is earlier. If the `from` value is not provided under `lastUpdateDateTime`, it is implicitly set to 3 days before the `to` timestamp. This JSON payload searches for all `Renewal Orders` that: - Were created between `01-April-2025 1:30 AM UTC` and `08-April-2025 1:30 AM UTC` - Were modified between `22-May-2025 7:45 PM UTC` and `25-May-2025 7:45 PM UTC` - Have the InstalledBase Number `LN00001234567` value: creationDateTime: from: '2025-04-01T01:30:00Z' lastUpdateDateTime: to: '2025-05-25T19:45:00Z' installedBaseNumber: LN00001234567 transactionType: RN required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/200_post_orders_search' examples: successful_ordersSearch_OneResult: summary: Sample successful basic Search for orders description: >- Sample successful basic search for orders with only 1 result. value: data: - transaction: id: PO_A123456789 type: PO status: Sent to DSx.Finance description: XYZ Company Order 50 products creationDateTime: '2024-05-21T14:30:00Z' dsRecievedPoDate: '2024-05-21' bookingDateTime: '2024-05-29T18:00:00Z' currency: USD onlineConsentStatus: Not Applicable billToSalesRepresentative: DOE, Jane billToPoReference: EXAMPLE-CORP-20250518 billToSite: id: '100012345678901' name: Example Corporation localName: 示例公司 locationId: 1 soldToSite: id: '200012345678901' name: Foobar Inc localName: फ़ूबार इंक locationId: 2 businessUnit: id: BU001 name: Corporate Sales Unit A localTimezone: CET info: success: true statusCode: 200 estimatedSearchCount: 1 200_ordersSearch_No-Result: summary: Sample successful Search for orders without any results description: Sample successful Search for orders without any results value: data: [] info: success: true statusCode: 200 estimatedSearchCount: 0 '400': description: Bad request, invalid input. content: application/json: schema: $ref: '#/components/schemas/400_post_orders_search' examples: failedOrderSearch_BadRequest: summary: Example response for a bad request description: > This example shows the response returned when a bad request is made, such as when no search criteria are provided. value: data: [] info: success: false statusCode: 400 estimatedSearchCount: 0 error: - type: errors:3dx:invalidRequest title: Missing required search criteria errors: - detail: >- Please specify at least one search criterion. Valid options include: `creationDateTime`, `bookingDateTime`, `lastUpdateDateTime`, `installedBaseNumber`, `onlineInstanceSeatId`, `billToPoReferences`. pointer: '#' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: >- Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by Dassault Systèmes. value: message: API Consumer Not allowed '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: >- The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later /order/api4partners/v0/orders/{id}: get: summary: Get Order details description: >- Retrieves all the details of an order given its Dassault Systèmes reference. tags: - orders operationId: getOrderDetails parameters: - name: id in: path required: true description: id of the order to get details from schema: type: string example: PO_000123456789 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/200_get_orders' examples: successful_getOrderDetails: summary: Sample successful response for order details query description: Example of response for order details with line and subLine value: data: - transaction: id: PO_A123456789 type: PO status: Sent to DSx.Finance description: XYZ Company Order 50 products businessUnit: id: BU001 name: Corporate Sales Unit A localTimezone: CET billToSite: id: '100012345678901' name: Example Corporation localName: 示例公司 locationId: 1 billToContact: DOE, Jini soldToSite: id: '200012345678901' name: Foobar Inc localName: फ़ूबार इंक locationId: 2 creationDateTime: '2024-05-21T14:30:00Z' dsReceivedPoDate: '2024-05-21' bookingDateTime: '2024-05-29T18:00:00Z' currency: USD onlineConsentStatus: Not Applicable billToSalesRepresentative: DOE, Jane billToPoReference: EXAMPLE-CORP-20250518 agreement: type: General VAR Agreement reference: Enterprise License Agreement Q2 2024 sboNumber: ABC0012345 customerRequestedArrivalDate: '2025-05-31' dsSalesRepresentative: DOE, John isMultiYear: false hasExitClause: false recurringChargeBillingCycle: Calendar Year opportunity: A1B2-C3D4E5 paymentTerms: Net Date of Invoice + 60 days licenseChargeConditions: - sequenceNumber: 1 lineGroup: SBL0001234567 onlineInstanceSeatId: R1122334455667 orderType: Stop - Transform usageScope: GEO EMEA promotion: id: PAO0000111 name: 3DEXPERIENCE for small and medium business combination: >- Collaborative Design & Engineering Learning @Home waiver: duration: 30 endDate: '2025-09-15' licenseChargeBreakdown: - sequenceNumber: 1 installedBaseNumber: LN00012345678 subOrderType: New License revenueType: ALC portfolio: CATIA release: 3DEXPERIENCE R2025x product: trigram: ABC type: Named User number: 1AB-ABC name: Generic Product Standard with Cloud Services dsOffering: Licensed Program quantity: 2 unitListPrice: 1000 totalListPrice: 2000 billToNetAmount: 1930 billToAnnualAmount: 1930 billToDiscountPercentage: 30.5 billToMarginPercentage: 10.5 maximumCustomerNetAmount: 1958.95 maximumCustomerAnnualAmount: 1958.95 minimumCustomerDiscountPercentage: 10.5 startDate: '2025-06-01' endDate: '2026-05-31' duration: 2 calculatedStartDate: '2025-06-01' calculatedEndDate: '2026-05-31' yearNumber: 1 coupon: name: 10% off on Installation Fee discountPercentage: 10 inflation: date: '2025-07-01' ratio: 1.04 exception: Capping To Price List info: success: true statusCode: 200 estimatedSearchCount: 1 '400': description: Bad Request. content: application/json: schema: $ref: '#/components/schemas/4xx_get_orders' examples: failedOrderGet_BadRequest: summary: Example response for missing required parameter description: > This example shows the response returned when transaction id is missing in the request. value: data: [] info: success: false statusCode: 400 estimatedSearchCount: 0 error: - type: errors:3dx:invalidRequest title: Bad Request errors: - detail: A required parameter is missing. pointer: '#/transactionId' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Unauthorized, missing or invalid API Key. content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: >- Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by Dassault Systèmes. value: message: API Consumer Not allowed '404': description: Not Found. content: application/json: schema: $ref: '#/components/schemas/4xx_get_orders' examples: failedOrderGet_BadRequest: summary: Example response for a Resource not Found description: > This example shows the response returned when no Order exists with the provided Id. value: data: [] info: success: false statusCode: 400 estimatedSearchCount: 0 error: - type: errors:3dx:resourceNotFound title: Not found errors: - detail: Change your parameters to get results pointer: '#' '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: >- The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later /order/api4partners/v0/apikeys: post: summary: Generate a new API key description: Generate a new API key and its hash. tags: - apikeys operationId: generateApiKey responses: '200': description: Successfully generated API key content: application/json: schema: $ref: '#/components/schemas/200_post_apikeys' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Access Forbidden content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: >- Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by Dassault Systèmes. value: message: API Consumer Not allowed '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: >- The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later /sales/api4partners/v0/leads-opportunities: post: summary: Create a lead-opportunity object description: > Creates a lead-opportunity object from its attributes along with possible linked objects (contact, sales Rep) tags: - leads-opportunities operationId: createLeadsOpportunities requestBody: description: request Body for creating a lead-opportunity content: application/json: schema: $ref: '#/components/schemas/post_leads-opportunities_data' examples: createLeadBasic: $ref: '#/components/examples/post_leads-opportunities_lead' createOpportunityBasic: $ref: '#/components/examples/post_leads-opportunities_oppy' required: true responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/201_post_leads-opportunities' examples: 200_leadsOpportunitiesCreateResponse: summary: OK description: >- Response in case of a successful creation of a new leadOpportunity value: dsLeadOpportunityId: 9YEL-Y3W56Q partnerLeadOpportunityId: PARTNER-CRM-LEAD-1A8R action: create info: success: true statusCode: 200 timestamp: null traceId: null error: null '400': description: Bad request, invalid input. content: application/json: schema: $ref: '#/components/schemas/400_post_leads-opportunities' examples: 400_leadsOpportunitiesCreateResponse: summary: Bad Request description: >- Response in case of a failure for creation of a new lead Opportunity value: data: leadOportunityId: string leadOpportunity: partnerExternalId: string name: string dsOwnerEmail: string status: string forecastCategory: string closeDate: date cometCampaignCode: string reasonWon: - string reasonLost: - string competitors: - string reasonWonLostComment: string gtmTacticId: string description: string nextMilestone: string nextMilestoneDate: date currency: string offerLines: - amount: double offerNameId: string revenueType: string customerLegalEntity: id: string dunsNumber: string vatNumber: string registrationId: string name: string city: string country: string addressLine1: string statePrefecture: string addressLine2: string zipCode: string websiteUrl: string info: success: false statusCode: 400 error: {} 400_alreadyExisting: summary: Bad Request, already existing lead-opportunity description: >- Lead-opportunity with same partnerExternalId already existing value: info: success: false statusCode: 400 timeStamp: '2025-07-01T13:03:16.325Z' traceId: 4e58705b1c7d40b78e0d1ab6ac404ac8 error: code: ERR801 message: >- Leverage with this Partner External ID DSLeadOpportunityID already exists. data: partnerLeadOpportunityId: null dsLeadOpportunityId: null action: null '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Access Forbidden content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: >- Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by Dassault Systèmes. value: message: API Consumer Not allowed '406': description: Not acceptable content: application/json: schema: $ref: '#/components/schemas/406_leads-opportunities' examples: 406_IncorrectCloseDateNextMilestoneFormat: summary: Error returned when date Format is not as expected. description: >- Date format provided in one input is not as per the expected format. value: info: success: false statusCode: 406 timeStamp: '2025-08-07T07:22:41.357Z' traceId: 7a722f2871304f7fa0bd1457388dff5d error: code: ERR805 message: >- Incorrect Close Date/next milestone date Format. Provide date in ISO8601 format. data: partnerLeadOpportunityId: null dsLeadOpportunityId: null action: null '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: >- The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/503_leads-opportunities' examples: 503_ServiceUnavailable: summary: Service Unavailable description: >- Service Unavailable Typical reason could be a maintenance on Dassault Systèmes System. try again later value: info: success: false statusCode: 503 timestamp: '2025-06-30T12:36:46.556Z' traceId: 3d29ece30a064ea68c3f5f4a9f785c6f error: code: ERR899 message: Service currently unavailable, please try again later. data: partnerLeadOpportunityId: null dsLeadOpportunityId: null action: null /sales/api4partners/v0/leads-opportunities/{id}: patch: summary: Update a lead-opportunity object description: >- Update a lead-opportunity (partial updates on some attributes is recommended) tags: - leads-opportunities operationId: updateLeadOpportunitiesDetails parameters: - name: id in: path required: true description: Dassault Systèmes id of the lead-opportunity object to update schema: type: string requestBody: description: request Body for updating a lead-opportunity object content: application/json: schema: $ref: '#/components/schemas/patch_leads-opportunities_data' examples: updateLeadStatus: $ref: '#/components/examples/patch_update-lead_status' updateLeadNextMilestone: $ref: '#/components/examples/patch_update-lead_nextMilestone' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/200_patch_leads-opportunities' examples: 200_leadsOpportunitiesCreateResponse: summary: OK description: >- Response in case of a successful creation of a new leadOpportunity value: info: success: true statusCode: 200 timeStamp: null traceId: null error: null data: partnerLeadOpportunityId: OPPY-12345 dsLeadOpportunityId: XJSR-DZMFFT action: update '400': description: Bad request, invalid input. content: application/json: schema: $ref: '#/components/schemas/400_patch_leads-opportunities' examples: 400_leadsOpportunitiesCreateResponse: summary: Bad Request description: >- Response in case of a Failure in updating an existing leadOpportunity value: data: leadOportunityId: string leadOpportunity: partnerExternalId: string name: string dsOwnerEmail: string status: string forecastCategory: string closeDate: date cometCampaignCode: string reasonWon: - string reasonLost: - string competitors: - string reasonWonLostComment: string gtmTacticId: string description: string nextMilestone: string nextMilestoneDate: date currency: string offerLines: - amount: double offerNameId: string revenueType: string customerLegalEntity: id: string dunsNumber: string vatNumber: string registrationId: string name: string city: string country: string addressLine1: string statePrefecture: string addressLine2: string zipCode: string websiteUrl: string customerContact: - phoneNumber: (555) 555-1234 salutation: Mr jobTitle: R&D Director email: robert.johnson@customer.com firstName: robert lastName: Johnson partnerContact: - salesRepEmail: john.doe@partner.com salesRepFirstName: john salesRepLastName: Doe info: success: false statusCode: 400 errors: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Access Forbidden content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: >- Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by Dassault Systèmes. value: message: API Consumer Not allowed '406': description: Not acceptable content: application/json: schema: $ref: '#/components/schemas/406_leads-opportunities' examples: 406_IncorrectCloseDateNextMilestoneFormat: summary: Error returned when date Format is not as expected. description: >- Date format provided in one input is not as per the expected format. value: info: success: false statusCode: 406 timeStamp: '2025-08-07T07:22:41.357Z' traceId: 7a722f2871304f7fa0bd1457388dff5d error: code: ERR805 message: >- Incorrect Close Date/next milestone date Format. Provide date in ISO8601 format. data: partnerLeadOpportunityId: null dsLeadOpportunityId: null action: null '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: >- The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/503_leads-opportunities' examples: 503_ServiceUnavailable: summary: Service Unavailable description: >- Service Unavailable Typical reason could be a maintenance on Dassault Systèmes System. try again later value: info: success: false statusCode: 503 timestamp: '2025-06-30T12:36:46.556Z' traceId: 3d29ece30a064ea68c3f5f4a9f785c6f error: code: ERR899 message: Service currently unavailable, please try again later. data: partnerLeadOpportunityId: null dsLeadOpportunityId: null action: null get: summary: Get details of a lead-opportunity object description: > gets details of a lead-opportunity object from its Dassault Systèmes identifier. tags: - leads-opportunities operationId: getLeadsOpportunities parameters: - name: id in: path required: true description: >- Dassault Systèmes id of the lead-opportunity object for which details are requested schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/200_get_leads-opportunities' examples: 200_leadsOpportunitiesGetResponse: summary: OK description: Successful retrieval of an existing leadOpportunity object value: error: null info: success: true statusCode: 200 timeStamp: null traceId: null data: leadOpportunity: partnerLeadOpportunityId: API4PARTNERS-0813C dsLeadOpportunityId: HCRQ-F1LLDE name: TEST-0813C dsOwnerEmail: john.doe@3ds.com status: WON forecastCategory: WON closeDate: '2024-12-31T00:00:00.000Z' cometCampaignCode: OC2DE17TAQ1C13018 competitors: null reasonWon: - STRNG_VAL_PROP reasonLost: - EMPTY reasonWonLostComment: '' gtmTacticId: null description: '' nextMilestone: '' nextMilestoneDate: '' currency: EUR approvalStatus: PRE_APPROVED engagementType: EXTEND poInformation: '' poStatus: null poNumber: null sboIndicator: EMPTY sboStatus: null sboNumber: null growthType: EMPTY leadPriority: EMPTY levelOfInterest: EMPTY dsComment: '' partnerImportMode: EMPTY createdDate: '2025-08-13T12:35:03.775Z' modifiedDate: '2025-08-13T15:44:44.453Z' offerLines: - amount: 10000 offerNameId: MDMIND00022_PUBL_ISE00002687_IPE00021337 revenueType: UPFRONT - amount: 11 offerNameId: MDMIND00022_PUBL_ISE00002687_IPE00021337 revenueType: RENTAL_BOOKING customerContact: - phoneNumber: '9658252499' salutation: MR jobTitle: '' email: dummy123_mail@mail.com firstName: F Name1 lastName: L_Name2 partnerContact: null customerLegalEntity: id: '200000000781989' dunsNumber: null vatNumber: null registrationId: null name: null city: null country: null addressLine1: null statePrefecture: null addressLine2: null zipCode: null websiteUrl: null '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Access Forbidden content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: >- Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by Dassault Systèmes. value: message: API Consumer Not allowed '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: >- The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/500_get_leads-opportunities' examples: 500_leadsOpportunitiesGetResponse: summary: Internal Server Error description: No access or inexistant lead-opportunity id value: error: code: ERROR_048 message: Leverage Id not in scope of requestor info: success: false statusCode: 500 timeStamp: '2025-08-12T15:40:35.774Z' traceId: 12bcca3a019645829d5330c5df912537 data: null '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/503_leads-opportunities' examples: 503_ServiceUnavailable: summary: Service Unavailable description: >- Service Unavailable Typical reason could be a maintenance on Dassault Systèmes System. try again later value: info: success: false statusCode: 503 timestamp: '2025-06-30T12:36:46.556Z' traceId: 3d29ece30a064ea68c3f5f4a9f785c6f error: code: ERR899 message: Service currently unavailable, please try again later. data: partnerLeadOpportunityId: null dsLeadOpportunityId: null action: null /sales/api4partners/v0/leads-opportunities/search: post: summary: Search for leads-opportunities description: > Searches for leads-opportunities using various search criteria (e.g. modifiedDate) tags: - leads-opportunities operationId: searchLeadsOpportunities requestBody: description: >- Request Body for searching leads-opportunities. The request must include at least one of the following sub-objects: - `modifiedDate` - `partnerLeadOpportunityId` These criteria will be combined using an AND operator if more than one is provided. content: application/json: schema: $ref: '#/components/schemas/post_leads-opportunities_search' examples: search_modifiedDate: summary: search on modifiedDate criterion description: >- Sample BodyRequest to search leads-opportunities based on 'modifiedDate' criterion. value: data: - modifiedDate: fromDate: '2025-08-04T08:00:00Z' toDate: '2025-08-08T18:00:00Z' search_partnerLeadOpportunityId: summary: search on partnerLeadOpportunityId criterion description: >- sample BodyRequest to search leads-opportunitied based on 'partnerLeadOpportunityId' criterion. value: data: - partnerLeadOpportunityId: - PARTNERID-129763 - PARTNERID-248651 search_partnerLeadOpportunityId-unassigned: summary: >- search for leads-opportunities without partnerLeadOpportunityId description: >- sample BodyRequest to search leads-opportunities on which there is no partnerLeadOpportunityId defined. value: data: - partnerLeadOpportunityId: '' search_combined: summary: search with combined criteria description: >- sample BodyRequest to search leads-opportunitied based on 'modifiedDate' & 'partnerLeadOpportunityId' criterion. value: data: - partnerLeadOpportunityId: - PARTNERID-129763 - PARTNERID-248651 - modifiedDate: fromDate: '2025-08-04T08:00:00Z' toDate: '2025-08-08T18:00:00Z' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/200_post_leads-opportunities_search' examples: 200_lead-opportunities_search: summary: OK description: Sample response for successful search. value: info: success: true statusCode: 200 timeStamp: '2025-08-08T16:36:23Z' traceId: 785594df0cbd4f149d0ffbd7e0933820 error: null data: - dsLeadOpportunityId: - 1FFC-7BQC5E - BYTK-COL4A0 - 5KSL-VLSWRX '400': description: Bad request, invalid input. content: application/json: schema: $ref: '#/components/schemas/400_post_leads-opportunities' examples: 400_lead-opportunities_search_missingFromToDate: summary: Bad Request description: >- Error when modifedDate search criterias (from or to) is invalid value: info: success: false statusCode: 400 timeStamp: '2025-08-08T15:14:19Z' traceId: afafb61eb2704ecb9b626d8b3b6c593f error: code: ERROR_043 message: >- Both startDateTime and endDateTime must be passed as parameters data: null '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Access Forbidden content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: >- Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by Dassault Systèmes. value: message: API Consumer Not allowed '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: >- The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/503_leads-opportunities' examples: 503_ServiceUnavailable: summary: Service Unavailable description: >- Service Unavailable Typical reason could be a maintenance on Dassault Systèmes System. try again later value: info: success: false statusCode: 503 timestamp: '2025-06-30T12:36:46.556Z' traceId: 3d29ece30a064ea68c3f5f4a9f785c6f error: code: ERR899 message: Service currently unavailable, please try again later. data: partnerLeadOpportunityId: null dsLeadOpportunityId: null action: null /sales/api4partners/v0/portfolio-items/search: get: summary: Search Sales portfolio items description: > Search Sales Portfolio Items. For now, no particular search criteria is offered, only pagination with skip & top query parameters. tags: - portfolio-items operationId: searchPortfolioItems parameters: - name: skip in: query description: Number of items to skip in the search results. schema: type: integer minimum: 0 default: 0 example: 0 - name: top in: query description: Maximum number of items to retrieve in search results. schema: type: integer minimum: 1 default: 9999 example: 100 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/200_get_portfolio-items_search' examples: 200_portfolioItemsSearchGetResponse: summary: OK description: Successful search in portfolio items (with top=1) value: info: success: true statusCode: 200 estimatedSearchCount: 3049 timeStamp: '2025-08-14T06:24:04.000Z' data: - salesPortfolioType: Brand salesPortfolioInfrastructure: On Premise salesPortfolioisOrderable: true salesPortfolioLevel1: CATIA salesPortfolioLevel2: CATIA V4 salesPortfolioLevel3: MANUFACTURING salesPortfolioId: CLASS00001_ONPR_CATIAV4_SOL000038 '400': description: Bad request, invalid input. content: application/json: schema: $ref: '#/components/schemas/400_get_portfolio-items_search' examples: 400_portfolioItemsSearchGetResponse: summary: Bad request description: Invalid query parameter value (top=-5) value: info: success: false statusCode: 400 timeStamp: '2025-08-14T09:07:04.000Z' estimatedSearchCount: 3030 error: code: ERROR_004 message: '#top should be a positive, non zero integer' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Access Forbidden content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: >- Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by Dassault Systèmes. value: message: API Consumer Not allowed '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: >- The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key schemas: date_time_from: type: string description: > This property represents a timestamp in UTC format, following the ISO 8601 standard. All date-time values must be provided in Coordinated Universal Time (UTC). The timestamp must not be set in the future. If not provided, the system will automatically calculate it by subtracting the maximum number of days specified for the time range defined for the parent search criteria. format: date-time example: '2024-05-21T14:30:00Z' date_time_to: type: string description: > This property represents a timestamp in UTC format, following the ISO 8601 standard. All date-time values must be provided in Coordinated Universal Time (UTC). If the `from` timestamp is specified, this value must be later than `from`. If not provided, the system will automatically calculate this value by adding the maximum number of days specified for the time range defined for the parent search criteria. format: date-time example: '2024-05-22T14:30:00Z' installed_base_number: type: string description: > A unique identifier for the installed base, representing the total number of software licenses that have been issued to a Final Customer. The Installed Base Number is used to determine the Final Customer's maintenance and support obligations, as well as to calculate the cost of future upgrades or renewals. This is used to track the Final Customer's software licenses and maintenance history. maxLength: 40 example: LN00012345678 online_instance_seat_id: type: string description: > Unique identifier assigned to a 3DEXPERIENCE platform instance. It is used to identify a specific instance of the platform, which can be accessed through the cloud. This identifier is also referred to as the **Online Instance ID**. Additionally, it is also used as the **Seat ID** to identify a user's access to the instance. The Seat ID is used to manage user licenses, authenticate users, and track user activity within the instance. The Online Instance ID/Seat ID is a combination of letters and numbers. maxLength: 15 example: R1122334455667 transaction_type: type: string description: | Order type (one of: `PO`, `RN`). enum: - PO - RN x-enumDescriptions: PO: Purchase Order RN: Renewal Notification example: PO orders_search_req: type: object properties: creationDateTime: type: object description: > Returns orders created within a specified time range, using the `Creation` timestamp. The maximum time window allowed for the search is **7 days** (calculated time to time). Including this tag prompts the system to perform validations and automatically compute the `from` or `to` timestamp if either is missing. Omitting this tag means the system will skip these validations and will not perform any implicit computation of the `from` or `to` values. properties: from: $ref: '#/components/schemas/date_time_from' to: $ref: '#/components/schemas/date_time_to' anyOf: - required: - from - required: - to bookingDateTime: type: object description: > Returns orders booked within a specified time range, using the `Booking` timestamp. The maximum time window allowed for the search is **7 days** (calculated time to time). The `Booking` timestamp refers to the date and time when the order was approved by the Finance Department. Including this tag prompts the system to perform validations and automatically compute the `from` or `to` timestamp if either is missing. Omitting this tag means the system will skip these validations and will not perform any implicit computation of the `from` or `to` values. properties: from: $ref: '#/components/schemas/date_time_from' to: $ref: '#/components/schemas/date_time_to' anyOf: - required: - from - required: - to lastUpdateDateTime: type: object description: > Indicates the timestamp of the most recent update to the order. The maximum time window allowed for the search is **3 days** (calculated time to time). This field is automatically set to the current timestamp whenever the order is modified. Omitting this tag means the system will skip these validations and will not perform any implicit computation of the `from` or `to` values. properties: from: $ref: '#/components/schemas/date_time_from' to: $ref: '#/components/schemas/date_time_to' anyOf: - required: - from - required: - to installedBaseNumber: $ref: '#/components/schemas/installed_base_number' onlineInstanceSeatId: $ref: '#/components/schemas/online_instance_seat_id' billToPoReferences: type: array minItems: 1 description: List of partner order references. example: - '390830' items: type: string maxLength: 60 description: | Must be a string with a maximum length of 60 characters. transactionType: description: > Order type (one of: `PO`, `RN`). If left unspecified, records of both transaction types will be included in the response. $ref: '#/components/schemas/transaction_type' anyOf: - required: - creationDateTime - required: - bookingDateTime - required: - lastUpdateDateTime - required: - installedBaseNumber - required: - onlineInstanceSeatId - required: - billToPoReferences order_processing_status: type: string description: Current processing status of the order. enum: - Cancelled - Claim to be Managed - Consent Refused - Discarded - Draft - Forecast - On Hold - Quote - Draft by VAR - Finance Approved - Finance Refused - Pending Consent - Pending Customer Consent - Quote Rejected - Sales Approved - Sent Back to Finance - Sent Back to Sales - Sent Back to Quote - Sent Back to VAR - Sent Back to VAR Central Admin - Sent to Credit Manager - Sent to DSx.Finance - Submitted to Sales - Submitted to VAR Central Admin x-enumDescriptions: Cancelled: The order has been cancelled and is no longer valid. Claim to be Managed: The order is being claimed by a different entity for management. Consent Refused: The Final Customer has refused to provide consent for the order. Discarded: The order has been discarded and is no longer valid. Draft: The order is in draft mode and has not been submitted. Forecast: >- Status for renewal which are created more than 90 days before their start date, renewal is kept in Forecast status until system applies the price increase, then moved to Draft or Quote. On Hold: >- Users can put a renewal on-hold temporarily to prevent automatic finalization. Quote: The order is in the quoting phase and has not been submitted. Draft by VAR: >- The order is in draft mode and has been created by a Value Added Reseller (VAR). Finance Approved: The order has been approved by the Finance Department. Finance Refused: The order has been refused by the Finance Department. Pending Consent: The order is waiting for Final Customer consent. Pending Customer Consent: >- The order is waiting for Final Customer consent and has not been submitted. Quote Rejected: The quote for the order has been rejected. Sales Approved: The order has been approved by the Sales Department. Sent Back to Finance: >- The order has been sent back to the Finance Department for further processing. Sent Back to Sales: >- The order has been sent back to the Sales Department for further processing. Sent Back to Quote: >- The order has been sent back to the quoting phase for further review or modification. Sent Back to VAR: >- The order has been sent back to the Value Added Reseller (VAR) for further processing. Sent Back to VAR Central Admin: >- The order has been sent back to the VAR central administration for further processing. Sent to Credit Manager: The order has been sent to the credit manager for further processing. Sent to DSx.Finance: >- The order has been sent to the Finance Department for further processing. Submitted to Sales: >- The order has been submitted to the Sales Department for further processing. Submitted to VAR Central Admin: >- The order has been submitted to the VAR central administration for further processing. example: Sales Approved transaction: type: object description: Transactional details of the order. properties: id: type: string description: >- Unique identifier of the order. Can represent a Purchase Order or a Renewal Notification. maxLength: 13 example: PO_A123456789 type: $ref: '#/components/schemas/transaction_type' status: $ref: '#/components/schemas/order_processing_status' description: type: string description: >- Short description given to the Purchase Order / Renewal Notification. maxLength: 30 example: XYZ Company Order 50 products local_time_zone: type: string description: | Time zone abbreviation used by the sales business unit. enum: - ACST - AEST - AKST - ASK - AST - AWST - BRI - CET - CHN - CST - EET - EST - ESTA - GMT - HAW - HOB - HST - IST - JST - MSK - MST - MSTA - NST - PST - SYD - UTC - VAL - WET x-enumDescriptions: ACST: Australian Central Standard Time AEST: Australian Eastern Standard Time AKST: Alaska Time (US) ASK: Alaska Time AST: Atlantic Time (Canada) AWST: Australian Western Standard Time BRI: Brisbane Time CET: Central European Time CHN: China Standard Time CST: Central Time (US) EET: Eastern European Time EST: Eastern Time (US) ESTA: Indiana GMT: Greenwich Mean Time HAW: Hawaii Time HOB: Hobart Time HST: Hawaiian Time IST: Indian Time JST: Japan Standard Time MSK: Moscow Time MST: Mountain Time (US) MSTA: Arizona Time NST: Newfoundland Time (Canada) PST: Pacific Time (US) SYD: Sydney Time UTC: Universal Time Coordinated, Zulu VAL: Vladivostok Time WET: Western European Time example: CET business_unit: type: object description: Details of the sales business unit. properties: id: type: string description: Unique identifier of the sales business unit. minLength: 5 maxLength: 5 example: BU001 name: type: string description: Name of the sales business unit. maxLength: 25 example: Corporate Sales Unit A localTimezone: $ref: '#/components/schemas/local_time_zone' required: - id - name - localTimezone legal_entity: type: object properties: id: type: string description: > A unique identifier for the company. The value will be within the Legal Entity Family. maxLength: 15 example: '100012345678901' name: type: string description: | The registered name of the company in English. maxLength: 120 example: Example Corporation localName: type: string description: | The registered name of the company in the local language. maxLength: 120 example: 示例公司 locationId: type: integer description: | A unique identifier representing the company's location. Must be an integer between 1 and 999. minimum: 1 maximum: 999 example: 2 required: - id - name - locationId creation_datetime: type: string description: | UTC timestamp when the order was created in the system. Format: ISO 8601 UTC (e.g., `2025-05-21T14:30:00Z`) format: date-time example: '2025-05-21T14:30:00Z' ds_received_po_date: type: string description: >- Date when the order was received by Dassault Systèmes, in ISO 8601 format (YYYY-MM-DD). format: date example: '2025-05-21' booking_datetime: type: string description: | UTC timestamp when the order was approved by the Finance Department. Format: ISO 8601 UTC (e.g., `2025-05-30T14:30:00Z`) format: date-time example: '2025-05-29T18:00:00Z' currency: type: string description: > Three-letter ISO 4217 currency code representing the transaction currency. Must be exactly 3 uppercase alphabetic characters (e.g., `USD` for US Dollar, `EUR` for Euro, `INR` for Indian Ruppee). minLength: 3 maxLength: 3 pattern: ^[A-Z]{3}$ example: USD online_consent_status: type: string description: | Status of the online consent request sent to the designated contact. enum: - Accepted - Expired - Not Applicable - Not Requested - Refused - Requested x-enumDescriptions: Accepted: >- The online consent request has been successfully accepted by the designated contact. Expired: The online consent request has expired and is no longer valid. Not Applicable: >- The online consent request is not applicable to the current situation or context. Not Requested: >- The online consent request has not been sent to the designated contact. Refused: The online consent request has been refused by the designated contact. Requested: >- The online consent request has been sent to the designated contact, but the status is pending. default: '' example: Accepted billto_sales_representative: type: string description: Name of the sales representative person from the **Bill To** site. example: DOE, Jane billto_po_reference: type: string description: > Identifier of the order as recorded in the **Bill To** site's ordering system. If available, this reference will also appear on the Dassault Systèmes invoice. example: EXAMPLE-CORP-20250518 orders_search_data: type: array description: List of orders retrieved during the search operation. items: type: object description: Summary information for a single order. properties: transaction: $ref: '#/components/schemas/transaction' businessUnit: $ref: '#/components/schemas/business_unit' billToSite: type: object description: >- Legal entity to which Dassault Systèmes will issue the invoice (Bill To). $ref: '#/components/schemas/legal_entity' soldToSite: type: object description: >- Legal entity of the company that is the Final Customer of Dassault Systèmes products (Sold To). $ref: '#/components/schemas/legal_entity' creationDateTime: $ref: '#/components/schemas/creation_datetime' dsRecievedPoDate: $ref: '#/components/schemas/ds_received_po_date' bookingDateTime: $ref: '#/components/schemas/booking_datetime' currency: $ref: '#/components/schemas/currency' onlineConsentStatus: $ref: '#/components/schemas/online_consent_status' billToSalesRepresentative: $ref: '#/components/schemas/billto_sales_representative' billToPoReference: $ref: '#/components/schemas/billto_po_reference' required: - transaction - businessUnit - billToSite - soldToSite - creationDateTime - currency info: type: object description: >- Metadata section of the response providing execution status and result summary. properties: success: type: boolean description: Indicates whether the API request was executed successfully. statusCode: type: integer description: HTTP status code corresponding to the response. estimatedSearchCount: type: integer description: Estimated number of results matching the search criteria. required: - success - statusCode error: type: array description: > An array containing one or more error objects identified during the request processing. Each object provides detailed information about a specific type of error encountered. items: type: object properties: type: type: string description: > A URI identifying the specific type of error. This allows API consumers to programmatically recognize and handle the error appropriately. The URI follows the format: `errors::` Example values include: - `errors:3dx:invalidRequest` - `errors:3dx:authenticationGenericError` - `errors:3dx:resourceNotFound` - `errors:3dx:internalServerError` enum: - errors:3dx:invalidRequest - errors:3dx:authenticationGenericError - errors:3dx:resourceNotFound - errors:3dx:internalServerError title: type: string description: >- A user-friendly error message, typically localized (NLS-supported), describing the general nature of the error. errors: type: array description: > A list of individual validation or processing errors related to the request. Useful when multiple issues are detected at once. items: type: object description: Details of a single error instance. properties: detail: type: string description: >- A human-readable message offering guidance to resolve the specific error. pointer: type: string description: >- A [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901) indicating the location of the field in the request payload where the error occurred. required: - type - title 200_post_orders_search: type: object description: Response body returned upon a successful order search request. properties: data: $ref: '#/components/schemas/orders_search_data' info: $ref: '#/components/schemas/info' error: $ref: '#/components/schemas/error' required: - info - data 400_post_orders_search: type: object description: Response body returned when the order search request fails. properties: data: type: array description: Always an empty array in case of error responses. maxItems: 0 items: {} example: [] info: $ref: '#/components/schemas/info' error: $ref: '#/components/schemas/error' required: - info - data - error 401_basic_unauthorized: type: object description: Unauthorized properties: message: type: string required: - message 403_basic_forbidden: type: object description: Access Forbidden. properties: message: type: string required: - message 429_too_many_requests: type: object description: Too Many Requests properties: message: type: string required: - message recurring_charge_billing_cycle: type: string description: > Identifies how often invoices are sent for ALC and ASC licenses. In the event of prorating (to an anniversary date, in the first month, or in the first quarter) or cancellation and refund or overpayment, the prorate calculation is based on 30 day months. enum: - Calendar Month - Calendar Quarter - Calendar Semester - Calendar Year - Full At Date - Immediate - Rolling Month 360 - Rolling Quarter 360 - Rolling Semester 360 - Rolling Year 360 x-enumDescriptions: Calendar Month: >- bill recurring license charges through the end of the current calendar month and for full month periods thereafter (or until indicated anniversary date if earlier) Calendar Quarter: >- bill recurring license charges through the end of the current calendar quarter and for full 3 month periods thereafter (or until indicated anniversary date if earlier) Calendar Semester: >- bill recurring license charges through the end of the current semester and for full 6 month periods thereafter (or until indicated anniversary date if earlier) Calendar Year: >- bill recurring license charges through the end of the current calendar year and for full 12 month periods thereafter (or until indicated anniversary date if earlier) Full At Date: >- bill recurring license charges for a 12-month period (or until indicated anniversary date if earlier) taking into consideration any start dates contained in the PO. If multiple durations (in contrast to quantity) of a recurrent license charge are ordered, they are invoiced at up front rather than on an annual basis. For example, if a PO is for two years of ALC, the two years are invoiced upfront at the start date rather than year one following order completion and year two the next year. Immediate: >- bill is generated by DS at the PO approval date for the full amount of the order not taking into consideration any license start dates contained in the PO. For example, if a PO is for two years of ALC, the two years are invoiced upfront at PO approval date. Rolling Month 360: >- bill recurring license charges from the start date through start date plus one month duration (or until indicated end date if earlier). Rolling Quarter 360: >- bill recurring license charges from the start date through start date plus 3 months duration (or until indicated end date if earlier). Rolling Semester 360: >- bill recurring license charges from the start date through start date plus 6 months duration (or until indicated end date if earlier). Rolling Year 360: >- bill recurring license charges from the start date through start date plus 12 months (or until indicated end date if earlier). For example, if PO is for 2 years of ALC with a start date February 1st, the 2 invoicing periods will be from February 1st to January 31st. example: Calendar Year order_type: type: string description: > Specifies the classification of the order based on its nature, purpose, or contractual arrangement. This helps identify whether the order involves a new purchase, renewal, upgrade, transfer, suspension, migration, evaluation, or any other business scenario. Each value represents a predefined business process or transaction type that impacts how the order is handled and processed. For a complete list of supported values, refer to the `enum` section. enum: - Change of Channel - Change of VAR - DS Brand -> DS & Migration - DS Brand -> DS OTC Platform - EPP Training - Evaluation License - IBM -> DS - IBM -> DS & Migration - IBM -> DS without Support - IBM NAL Parallel Use -> DS - IBM NAL without Support -> DS - Intercompany Transfer - Migration - Non Standard - Migration - Standard - Module Exchange - Non Standard - Module Exchange - Standard - New - One Time Fee - Parallel Use Extension - Renewal - Special Order - Stop - Stop & Parallel Use - Stop - Transform - Suspension - Suspension Reinstatement - TOS Reinstatement - Termination Of Support - Transfer Parallel Use - Transfer without Support - VAR Use x-enumDescriptions: New: >- A fresh order that does not involve any migration, renewal, or upgrade. Renewal: Extending an existing license. Migration - Standard: A standard migration from another platform. Evaluation License: License issued temporarily for evaluation purposes. Stop - Transform: >- Discontinuing an existing license with a shift to a transformed model or product. Suspension: Temporarily halting the license or support services. Termination Of Support: Ending the support of a product or service. VAR Use: Orders associated with Value-Added Resellers (VAR). Change of Channel: >- Changing Final Customer coverage from direct to indirect or vice versa. Change of VAR: Changing the Value-Added Reseller (VAR) for an existing order. DS Brand -> DS & Migration: Migrating from DS Brand to DS with migration services. DS Brand -> DS OTC Platform: Transitioning from DS Brand to DS OTC Platform. EPP Training: Training related to EPP (Enterprise Productivity Portfolio). IBM -> DS: Transitioning from IBM to DS. IBM -> DS & Migration: Transitioning from IBM to DS with migration services. IBM -> DS without Support: Transitioning from IBM to DS without support. IBM NAL Parallel Use -> DS: Parallel use of IBM NAL with DS. IBM NAL without Support -> DS: Transitioning from IBM NAL to DS without support. Intercompany Transfer: Transferring licenses between different companies. Migration - Non Standard: Non-standard migration processes. Module Exchange - Non Standard: Non-standard module exchange processes. Module Exchange - Standard: Standard module exchange processes. One Time Fee: Fee charged for a one-time service or transaction. Parallel Use Extension: Extending the parallel use period. Special Order: New licenses with specific administrative requests. Stop: Discontinuing an existing license. Stop & Parallel Use: Discontinuing an existing license with parallel use. Suspension Reinstatement: Reinstating a suspended license or support services. TOS Reinstatement: Reinstating terms of service. Transfer Parallel Use: Transferring licenses with parallel use. Transfer without Support: Transferring licenses without support. example: Stop - Transform sub_order_type: type: string description: sub Order Type enum: - Change of Channel - Change of VAR - EPP Training - Evaluation License - Transfer License - New License - One Time Fee - License Renewal - Stop (NO Parallel Use) - Stop - Transform - Stop License - Stop of PU - Stop & Parallel use - Suspension - Suspension Reinstatement - TOS Reinstatement - Termination Of Support - Transfer without Support - VAR Use x-enumDescriptions: Change of Channel: Changing customer coverage from direct to indirect or vice versa. Change of VAR: Changing the Value-Added Reseller (VAR) for an existing order. EPP Training: Training related to EPP (Enterprise Productivity Portfolio). Evaluation License: License issued temporarily for evaluation purposes. Transfer License: Transferring licenses between different companies. New License: Fresh order that does not involve any migration, renewal, or upgrade. One Time Fee: Fee charged for a one-time service or transaction. License Renewal: Extending an existing license. Stop (NO Parallel Use): Discontinuing an existing license with no parallel use Stop - Transform: >- Discontinuing an existing license with a shift to a transformed model or product. Stop License: Discontinuing an existing license. Stop of PU: Discontinuing an existing PU license. Stop & Parallel use: Discontinuing an existing license with parallel use Suspension: Temporarily halting the license or support services. Suspension Reinstatement: Reinstating a suspended license or support services. TOS Reinstatement: Reinstating terms of service. Termination Of Support: Ending the support of a product or service. Transfer without Support: Transferring licenses without support. VAR Use: Orders associated with Value-Added Resellers (VAR). example: New License order_revenue_type: type: string enum: - ALC - ASC - ELC - PLC - PSC - QLC - QSC - SLC - SSC - TBL2 - TBL3 - TSC2 - TSC3 - TSC5 - ULC - USC - XLC - XSC - YLC - YSC x-enumDescriptions: ALC: Annual License Charge ASC: Annual Service Charge ELC: Evaluation Licence Charge PLC: Primary License Charge PSC: Primary Service Charge QLC: Quarter License Charge QSC: Quarter Service Charge SLC: Service/support license charge SSC: Service Charge TBL2: Term Based Licenses 2 TBL3: Term Based Licenses 3 TSC2: Term Service Charge 2 TSC3: Term Service Charge 3 TSC5: Term Service Charge 5 ULC: Administration license charge USC: Upfront Service Charge XLC: X License Charge XSC: eXtended Service Charge YLC: Yearly License Charge YSC: Yearly Service Charge example: ALC product_type: type: string description: Type of the product. enum: - Add-On - Auxiliary - Casual Named User - Configuration - Enterprise - Machine Based - Migration Path - Named User - Offer - Package - Service - Shareable - Single Add-On - System - Token-Based x-enumDescriptions: Add-On: >- An additional feature or component that enhances the functionality of a product. Auxiliary: A supplementary product or service that supports the primary product. Casual Named User: >- A type of user license that allows for occasional or infrequent use of a product. Configuration: A specific setup or arrangement of a product's features or components. Enterprise: A product or service designed for large-scale or enterprise-level use. Machine Based: A product or service that is licensed or used on a machine or device. Migration Path: >- A product or service that helps customers transition from one product to another. Named User: >- A type of user license that allows for regular or frequent use of a product by a specific individual. Offer: >- A product or service that is being promoted or offered as a special deal. Package: >- A collection of products or services that are bundled together for sale. Service: A product or service that provides support or assistance to customers. Shareable: >- A product or service that can be shared among multiple users or devices. Single Add-On: >- A single additional feature or component that enhances the functionality of a product. System: >- A product or service that is designed to work as a complete system or solution. Token-Based: >- A product or service that uses tokens or other forms of authentication to manage access. example: Named User ds_offering: type: string description: Dassault Systèmes offering Type enum: - Auxiliary - Licensed Program - Not Applicable - Online Services - Packaged Offering - Specific x-enumDescriptions: Auxiliary: >- Non software items i.e hardware, peripherals, or anything else that is not software. Licensed Program: On premises software. Not Applicable: "Items that are not governed by the CLOSA at all.\t" Online Services: Cloud based services. Packaged Offering: A bundle that mixes licensed programs and online. Specific: Items covered by a separate agreement rather than the standard CLOSA. example: Licensed Program order_sub_line: type: object description: | Details of License Charge Breakdown. It is also interchangably called as Sub-Line Item. properties: sequenceNumber: type: integer description: > The sequence number used to identify the license charge breakdown item. It is an integer autogenerated by system, between 1 and 999. minimum: 1 maximum: 999 example: 1 installedBaseNumber: $ref: '#/components/schemas/installed_base_number' subOrderType: $ref: '#/components/schemas/sub_order_type' revenueType: $ref: '#/components/schemas/order_revenue_type' portfolio: type: string description: > The portfolio to which the product being ordered belongs. This field identifies the specific product family or category to which the ordered product belongs. For example, a product might belong to a portfolio such as "CATIA", "ENOVIA", or "SIMULIA". maxLength: 50 example: CATIA release: type: string description: > The name of the product release being ordered. This field identifies the specific version of the product to which the ordered product belongs. For example, a product might belong to a release such as "3DEXPERIENCE R2025x", "SOLIDWORKS 2025", or "V5-6R2025". maxLength: 50 example: 3DEXPERIENCE R2025x product: type: object description: | This field identifies the specific product that is being ordered. properties: trigram: type: string description: | The trigram code for the product being ordered. maxLength: 10 example: XYZ type: $ref: '#/components/schemas/product_type' number: type: string description: | The product number. maxLength: 20 example: 1AB-XYZ name: type: string description: | The name of the product. This field specifies the title or label of the product. maxLength: 200 example: Generic Product Standard with Cloud Services dsOffering: $ref: '#/components/schemas/ds_offering' quantity: type: integer description: | The quantity of the product being ordered. minimum: 1 example: 2 unitListPrice: type: number format: float description: > The price listed by the Finance Department for the product being ordered. This field represents the standard price of a single unit of the product, as approved by the Finance Department. example: 1000 totalListPrice: type: number format: float description: > The total price of the product licenses, calculated by multiplying the `Unit List Price` and the `Quantity`. This field represents the total cost of the product licenses, taking into account the number of units purchased. example: 2000 billToNetAmount: type: number format: float description: > The actual amount payable by the Bill To Site for the selected product. This field represents the total cost of the product or service, including any applicable taxes, fees, or discounts. example: 1930 billToAnnualAmount: type: number format: float description: > The total amount payable by the Bill To Site for the full year. This field represents the annual cost of the product or service, taking into account any usage periods that are not a full year. Note that there may be a difference between `Bill To Net Amount` and `Bill To Annual Amount` when the product is not purchased for a full year of usage. example: 1930 billToDiscountPercentage: type: number format: float description: > The discount percentage applicable to the `Total List Price`. This field represents the percentage reduction in the total list price, as a decimal value (e.g. 3.5 represents 3.5%). example: 3.5 billToMarginPercentage: type: number format: float description: > The percentage difference between the discount price offered by Dassault Systèmes and the Partner Bill To Site. This field represents the margin earned by the Partner Bill To Site, calculated as a percentage of the discount price. Note: This field is pre-filled according to the percentage value set inside the Distributor Discount Model section of the GVA Agreement. Additionally, note that this field is related to `Bill to Discount Percentage`, which represents the percentage reduction in the `Total List Price`. example: 1.5 maximumCustomerNetAmount: type: number format: float description: > The actual amount payable by the Final Customer Site for the selected product. This field represents the maximum net amount that the Final Customer Site is responsible for paying, taking into account any applicable discounts or fees. example: 1958.95 maximumCustomerAnnualAmount: type: number format: float description: > The total amount payable by the Final Customer Site for the full year. This field represents the annual cost of the product or service, taking into account any usage periods that are not a full year. Note that there may be a difference between `Maximum Customer Net Amount` and `Maximum Customer Annual Amount` when the product is not purchased for a full year of usage. example: 1958.95 minimumCustomerDiscountPercentage: type: number format: float description: > The minimum discount percentage that the Partner Bill To Site offers to the Final Customer for the selected product. This field represents the lowest percentage discount that the Partner Bill To Site is willing to offer to the Final Customer, as a decimal value (e.g. 0.5 represents 0.5%). example: 0.5 startDate: type: string description: > The start date of the product or service, in ISO 8601 format (YYYY-MM-DD). format: date example: '2025-06-01' endDate: type: string description: > The end date of the product or service, in ISO 8601 format (YYYY-MM-DD). example: '2026-05-31' duration: type: integer description: > The duration for which the product or service is intended to be used. The unit of duration depends on the `Revenue Type`: - If `Revenue Type` is ALC (Annual License Charge), then the duration is measured in years. For example, a duration of 2 represents 2 years. - If `Revenue Type` is QLC (Quarterly License Charge), then the duration is measured in quarters. For example, a duration of 2 represents 2 quarters. example: 2 calculatedStartDate: type: string description: > This field is automatically calculated by the system. Format: ISO 8601 format (YYYY-MM-DD). It is based on one of the following dates: - The user-entered `Start Date` - The `CRAD (Customer Requested Arrival Date)` - The `Finance Approved` date of the order format: date example: '2025-06-01' calculatedEndDate: type: string description: > This field is automatically calculated by the system. Format: ISO 8601 format (YYYY-MM-DD). It is based on one of the following values: - `First Year Co-Terminus`: The end date of the first year of the contract. - End date of the Duration calculated from 'calculatedStartDate' or entered by the user format: date example: '2026-06-31' yearNumber: type: integer description: > This field represents the product usage `Year Number` for multi-year orders. It is used to identify the specific year of a multi-year contract. example: 1 coupon: type: object description: | Details of the discount coupon applied to the final price. properties: name: type: string description: | The name of the discount coupon. maxLength: 40 example: 10% off on Installation Fee discountPercentage: type: number format: float description: | The discount percentage that will be applied to final price. example: 10 inflation: type: object description: > Details about the inflation rate applied to the price of the product. The inflation occurs when it is the case of product renewals. properties: date: type: string description: | The date since when the inflation rate is applicable. This date should be in the format `YYYY-MM-DD`. format: date example: '2025-07-01' ratio: type: number format: float description: > The multiplication factor applied to the price. For example, a ratio of `1.04` indicates a 4% price increase applied. example: 1.04 exception: type: string description: | Any exception applied while calculating the inflated amount. enum: - Capping To Price List - No Price Increase - No Cap. Lower than Price List example: Capping To Price List order_line: type: object description: | Details of License Charge Condition. This object is also interchangably called as Line Item. properties: sequenceNumber: type: integer description: | The sequence number used to identify the line item. It is an integer autogenerated by system, between 1 and 999. minimum: 1 maximum: 999 example: 1 lineGroup: type: string description: > Unique identifier of license charge condition. This is used to group together the Installed Base sub-lines. maxLength: 15 example: SBL0001234567 onlineInstanceSeatId: $ref: '#/components/schemas/online_instance_seat_id' orderType: $ref: '#/components/schemas/order_type' usageScope: type: string description: > Defines the geographical or territorial scope in which the product can be used, as specified in the associated agreement details. This may refer to a region (e.g., GEO) or a specific country. maxLength: 80 example: GEO EMEA promotion: type: object description: > Promotion information. This object contains information about the promotion applied to the order. The promotion object contains information about the promotion, including its name, ID, and combination of one or more products. properties: id: type: string description: > Unique identifier of the promotion. The ID is a 15-character string that starts with "PAO" followed by a sequence of numbers. The numbers are generated by the system and are used to identify the promotion. The ID is unique within the instance and is used to track and manage the promotion. maxLength: 10 example: PAO0000111 name: type: string description: > Name of the promotion. The name is a human-readable description of the promotion. The name is used to identify the promotion and to display it to the user. maxLength: 100 example: 3DEXPERIENCE for small and medium business combination: type: string description: > The human-readable name of the combination that represents specific grouping of products. The combination is usually one or more products from one or multiple portfolios. A combination can be thought of as a "bundle" of products that are sold together, or as a "package" of products that are related in some way. maxLength: 100 example: Collaborative Design & Engineering Learning @Home waiver: type: object description: | Waiver information for the license charge. It can be either of `duration` or `endDate`. properties: duration: type: integer description: | The number of months the order is eligible for free or discount. The duration is usually a number of months. example: 1 endDate: type: string description: > The date untill which the order is eligible for free or discount. Format: ISO 8601 (e.g., `2025-05-30`) format: date example: '2025-05-30' oneOf: - required: - duration - required: - endDate licenseChargeBreakdown: type: array items: $ref: '#/components/schemas/order_sub_line' order_get_data: type: array description: List of orders retrieved during the search operation. items: type: object description: Summary information for a single order. properties: transaction: $ref: '#/components/schemas/transaction' businessUnit: $ref: '#/components/schemas/business_unit' billToSite: type: object description: >- Legal entity to which Dassault Systèmes will issue the invoice (Bill To). $ref: '#/components/schemas/legal_entity' soldToSite: type: object description: >- Legal entity of the company that is the Final Customer of Dassault Systèmes products (Sold To). $ref: '#/components/schemas/legal_entity' agreement: type: object description: > Contains details about the license agreement associated with the licenses being ordered in the Purchase Order (PO). properties: type: type: string description: | Type or classification of the agreement. maxLength: 100 example: General VAR Agreement reference: type: string description: > A short, descriptive title or label assigned to the agreement at the time of its creation. This helps users identify the specific agreement applied to the order. It can be selected in the Purchase Order only for agreement types where the sub-group is `Instantiated`. maxLength: 254 example: Enterprise License Agreement Q2 2024 required: - type billToContact: type: string description: >- Full name of the contact person at the Bill To site (billing entity) who is responsible for the order. This contact person is the primary point of communication for billing-related inquiries and transactions. Format-`LASTNAME, Firstname` (e.g., `DOE, John`). creationDateTime: $ref: '#/components/schemas/creation_datetime' dsReceivedPoDate: $ref: '#/components/schemas/ds_received_po_date' bookingDateTime: $ref: '#/components/schemas/booking_datetime' currency: $ref: '#/components/schemas/currency' onlineConsentStatus: $ref: '#/components/schemas/online_consent_status' billToSalesRepresentative: $ref: '#/components/schemas/billto_sales_representative' billToPoReference: $ref: '#/components/schemas/billto_po_reference' sboNumber: type: string description: > Unique identifier of the Special Bid Offer (SBO) that served as the basis for creating the order. Typically used to track and reference special pricing or offer conditions. maxLength: 10 example: ABC0012345 customerRequestedArrivalDate: type: string description: > Customer Requested Arrival Date (CRAD) indicates the date by which the Final Customer requests delivery of the DS Licenses and Support Order. > **Note:** CRAD is a non-binding request. While DS will make reasonable efforts to meet this date, it does not constitute a contractual commitment. - Orders can still receive 'Finance Approved' status, media can be 'Shipped', and license keys can be issued and marked as 'Completed' irrespective of the CRAD. - The **Support Start Date** in the Installed Base will never begin before the CRAD. - Format: ISO 8601 format (YYYY-MM-DD) - License keys will remain inactive until the Support Start Date. format: date example: '2025-05-31' dsSalesRepresentative: type: string description: > Full name of the Dassault Systèmes (DS) sales representative responsible for the order. Format: `LASTNAME, Firstname` (e.g., `DOE, John`) example: DOE, John isMultiYear: type: boolean description: > Indicates whether the order is part of a Multi-Year deal (i.e., duration longer than one year), applicable for revenue types such as `YxC` or `AxC`. example: true hasExitClause: type: boolean description: > Indicates whether the agreement includes an exit clause requiring the Final Customer to pay early termination fees if they end the rental before the completion of the multi-year engagement. example: true recurringChargeBillingCycle: $ref: '#/components/schemas/recurring_charge_billing_cycle' opportunity: type: string description: > Unique identifier for the sales opportunity as recorded in the **My Sales Pipeline** system. This value helps link the order to its originating sales activity. example: A1B2-C3D4E5 paymentTerms: type: string description: > Payment terms for the order, as provided by the Finance Department. Specifies the agreed period within which the payment must be made. maxLength: 50 example: Net Date of Invoice + 60 days licenseChargeConditions: type: array description: > A list of conditions that determine when the license is charged for the order. These conditions specify the circumstances under which the license fee is applied, such as: - The number of users or seats that are licensed. - The type of license or subscription being purchased. - Any waiver given on the license or subscription. - Any additional features or services that are included with the license. The license charge conditions are used to calculate the total cost of the license and to ensure that the correct pricing is applied. items: $ref: '#/components/schemas/order_line' required: - transaction - businessUnit - billToSite - soldToSite - creationDateTime - currency - agreement 200_get_orders: type: object description: Response body returned upon a successful order details request. properties: data: $ref: '#/components/schemas/order_get_data' info: $ref: '#/components/schemas/info' error: $ref: '#/components/schemas/error' required: - data - info 4xx_get_orders: type: object description: Response body returned when the order details request fails. properties: data: type: array description: Always an empty array in case of error responses. maxItems: 0 items: {} example: [] info: $ref: '#/components/schemas/info' error: $ref: '#/components/schemas/error' required: - data - info - error 200_post_apikeys: type: object properties: hashed_key: type: string description: Generated hash of the API key (60 characters) example: $2b$12$8tcF4MTIDcup3WEo8fFSieGIYEnp/DTLHSTivUCcW2II/VVwRI9Qm minLength: 60 maxLength: 60 api_key: type: string description: Plain API key (64 characters) example: 5839bcfabb9e0d20f889f366dbfbbe2973c152cfbe91fae728a9f7e662ce1a2d minLength: 64 maxLength: 64 required: - hashed_key - api_key partnerLeadOpportunityId: type: string description: >- Unique Identifier of the lead-opportunity in the CRM system of the Dassault Systèmes partner. example: OPPY-1004526 dsOwnerEmail: type: string description: >- email of the Dassault Systèmes Partner Sales Manager (PSM). Note : It is defaulted to the primary Dassault Systèmes PSM if not provided at creation time. example: john.doe@3ds.com lead-opportunity-status: type: string description: | Status of the lead-opportunity (LEVERAGE Processs) enum: - LEAD_OPEN - QUALIFIED - ACCEPTED - OPPY_OPEN - VALIDATED - ESTABLISHED - WON - LOST x-enumDescriptions: LEAD_OPEN: '-6 Open' QUALIFIED: '-5 Qualified' ACCEPTED: '-4 Accepted' OPPY_OPEN: '-3 Open' VALIDATED: '-2 Validated' ESTABLISHED: '-1 Established' WON: Won opportunity LOST: Lost opportunity forecastCategory: type: string enum: - UPSIDE - COMMIT - SAFE - WON - LOST - LONGSHOT - EMPTY description: >- Forecast Category is an assessment done by the Sales Expert to report his/her level of confidence that the Opportunity will close on the Close Date with the revenue amounts defined. Value is ignored at creation if status is ‘LEAD_OPEN’,’QUALIFIED’ or ’ACCEPTED’. if value is not provided at creation time, it defaults based on the following matrix : | status | default forecastCategory | forecastCategory values | | ------- | ------------------------ | -----------------------| | -3 Open | Upside | Safe/Commit/Upside/Longshot | | -2 validated | Upside | Safe/Commit/Upside/Longshot | | -1 Established | Upside | Safe/Commit/Upside/Longshot | | Won | Won | Won (set by the system)| | Lost | Lost| Lost (set by the system) x-enumDescriptions: UPSIDE: > One or more major risks of closing business by the close date, however the customer stated an intention, as represented in the Win Plan, to place an order by the specified Close Date. COMMIT: > Commitment that this Opportunity will be won by the close date. All key steps to close by the close date have been agreed upon with the customer and there are no known major risks. SAFE: > The Purchase Order and agreements signed by the customer are received by Dassault Systèmes, are being reviewed by Sales Operations and have been submitted to Finance. WON: > The signed Statement of work and Purchase Order are approved (by Finance) LOST: > The signed Statement of work and Purchase Order are approved (by Finance) and the Opportunity is lost. LONGSHOT: > LongLow probability of closing business by the close date due to one or more significant risks (RFP in process, missing technical proofs or vendor selection, no alignment on Close Date, services or legal contracts not startedshot. EMPTY: | Empty, not filled in. reason_won: type: string description: >- Identification of the reason a lead or an opportunity is won. Note : At Creation time, if Value is Not provided, it will be defaulted to 'STRNG_VAL_PROP' (Stronger value proposition). enum: - SOLUTION_FUNCT - STRNG_VAL_PROP - LWR_CST_OF_OWNRSHIP - LWR_IMPL_COST - GOOD_CSTMR_REFER - OFFR_TRM_CONDN - LWR_SFTWR_COSTS - STRONG_CLIENT_RELATION - DS_SKILLS_EXPERTISE - PRTNR_SKILL_&_EXPRT - PRTNR_RELTNSHIP - SALE_OPP_ACT - IT_DRVN_ACT - EMPTY x-enumDescriptions: SOLUTION_FUNCT: Solution functionality STRNG_VAL_PROP: Stronger value proposition LWR_CST_OF_OWNRSHIP: Lower costs of ownership LWR_IMPL_COST: Lower implementation costs GOOD_CSTMR_REFER: Good customer references OFFR_TRM_CONDN: Offer Terms & conditions LWR_SFTWR_COSTS: Lower software costs STRONG_CLIENT_RELATION: Strong client relationship DS_SKILLS_EXPERTISE: DS skills & expertise PRTNR_SKILL_&_EXPRT: Partner skills & expertise PRTNR_RELTNSHIP: Partner (CSI) relationship SALE_OPP_ACT: SalesOperations activities IT_DRVN_ACT: IT driven activities EMPTY: Empty example: STRNG_VAL_PROP reason_lost: type: string enum: - BETTER_COMP_OFFER - CLIENT_DOES_NOT_SEE_VALUE - LACK_OR_LOSS_OF_CHAMPION - FUNC_GAP - HIGH_IMPLEM_COST - LACK_OF_REF - OFFER_DOES_NOT_MATCH_NEEDS - QUALITY_ISSUE - DS_SKILLS_SUPPORT_ISSUE - PARTNER_SKILL_SUPPORT - REL_LEVEL_ISSUE - SOFT_COST_TOO_HIGH - TERMS_COND_ISSUE - COST_OF_SALES_TOO_HIGH - LACK_OF_SKILLS_TO_SUPPORT - LACK_OF_TECH_RESOURCES - NOT_A_DS_PRIORITY - NOT_A_PARTNER_PRIORITY - CLIENT_BANKRUPT_OR_ACQUIRED - CLIENT_HAS_NO_MORE_NEED - CLIENT_HAS_NO_MORE_BUDGET - DUP_COPY - IT_DRIVEN_ACTIVITIES - LOST_TO_ANOTHER_PARTNER - SALESOPS_ACTIVITIES - TERRITORY_REJECT - INADEQUATE_REF - WRONG_PARTNER_OR_DS_SALES - MISSING_INFORMATION - INCORRECT_CHANNEL - UNMOVABLE_COMPET - OPPY_ALREADY_EXISTS - NO_PROJECT - IMMATURE_PROJECT - DUP_LEAD - DUP_OPPY - CUST_BNKRUPT - NVR_SUCCEED_RECHN_CUST - NT_ENG_RLVNT_EVD_CUST - ROI_NT_VIBLE - VLD_CUST_EXPLNTN - MERGED - EMPTY description: >- A list of reason lost is used to identify the reason(s) for loss of an opportunity and for a Lead (which will give insight for the lessons learnt). Note : It is defaulted to `No Project` if value is Not provided during creation of the lead-opportunity. x-enumDescriptions: BETTER_COMP_OFFER: Better competition offer CLIENT_DOES_NOT_SEE_VALUE: Client does not see value LACK_OR_LOSS_OF_CHAMPION: Lack or loss of Champion FUNC_GAP: Functional gap HIGH_IMPLEM_COST: High Implementation cost LACK_OF_REF: Lack of references OFFER_DOES_NOT_MATCH_NEEDS: Offer does not match needs QUALITY_ISSUE: Quality issue DS_SKILLS_SUPPORT_ISSUE: DS skills & support issue PARTNER_SKILL_SUPPORT: Partner skills & support REL_LEVEL_ISSUE: Relationship level issue SOFT_COST_TOO_HIGH: Software cost too high TERMS_COND_ISSUE: Terms & conditions issue COST_OF_SALES_TOO_HIGH: Cost of Sales too high LACK_OF_SKILLS_TO_SUPPORT: Lack of skills to support LACK_OF_TECH_RESOURCES: Lack of tech resources NOT_A_DS_PRIORITY: Not a priority for DS NOT_A_PARTNER_PRIORITY: Not a priority for Partner CLIENT_BANKRUPT_OR_ACQUIRED: Client Bankrupt/Acquired CLIENT_HAS_NO_MORE_NEED: Client has no (more) need CLIENT_HAS_NO_MORE_BUDGET: Client has no (more) budget DUP_COPY: Duplicate copy IT_DRIVEN_ACTIVITIES: IT driven activities LOST_TO_ANOTHER_PARTNER: Lost to another partner SALESOPS_ACTIVITIES: SalesOperations activities TERRITORY_REJECT: Territory reject INADEQUATE_REF: Inadequate references WRONG_PARTNER_OR_DS_SALES: Wrong Partner/DS Sales MISSING_INFORMATION: Missing information INCORRECT_CHANNEL: Incorrect channel UNMOVABLE_COMPET: Unmovable compet. OPPY_ALREADY_EXISTS: Oppy already exists NO_PROJECT: No Project IMMATURE_PROJECT: Immature project DUP_LEAD: Duplicate lead DUP_OPPY: Duplicate oppy CUST_BNKRUPT: Customer bankruptcy NVR_SUCCEED_RECHN_CUST: Never succeed in reaching customer (mail/phone/letter) NT_ENG_RLVNT_EVD_CUST: >- Not enough relevant evidences to escalate with the customer (at risk at the court) ROI_NT_VIBLE: ROI for enforcement not viable VLD_CUST_EXPLNTN: Valid Customer Explanation (approved by legal) MERGED: Merged EMPTY: Empty example: CLIENT_HAS_NO_MORE_BUDGET lead-opportunity_attributes: type: object properties: partnerLeadOpportunityId: $ref: '#/components/schemas/partnerLeadOpportunityId' name: type: string description: Name assigned to the lead-opportunity example: Projekt Big-Picture Topic + MBSE (STEP 1+2) dsOwnerEmail: $ref: '#/components/schemas/dsOwnerEmail' status: $ref: '#/components/schemas/lead-opportunity-status' example: LEAD_OPEN forecastCategory: $ref: '#/components/schemas/forecastCategory' example: UPSIDE closeDate: type: string format: date-time description: >- Expected date for the closing of the sale in ISO 8601 format (like YYYY-MM-DDThh:mm:ss.sssZ) example: '2025-08-01T18:03:16.325Z' cometCampaignCode: type: string description: COMET Campaign code example: OC2DE17TAQ1C13018 reasonWon: type: array description: >- Identification of the reason a lead or an opportunity is won. _Note_ : At creation time, if value is not provided, it will be defaulted to `STRNG_VAL_PROP` (Stronger value proposition). items: $ref: '#/components/schemas/reason_won' reasonLost: type: array description: >- A list of reason lost is used to identify the reason(s) for loss of an opportunity and for a Lead (which will give insight for the lessons learnt). _Note_ : At creation time, if value is not provided, it will be defaulted to `NO_PROJECT`. items: $ref: '#/components/schemas/reason_lost' competitors: type: array description: > List of the competitors. In current state of the API, the list of valid values will be provided through direct communication with partners (mail or 3DSwym discussion). items: type: string reasonWonLostComment: type: string description: Comment associated to WON or LOST reasons example: The Customer has no budget gtmTacticId: type: string description: identification of GoToMarket. description: type: string description: description associated to the lead-opportunity example: Projekt Dashboard - Big-Picture TopicPilotprojekt nextMilestone: type: string description: Description of the next activity to be done example: Next activity is to make a demo to the Customer nextMilestoneDate: type: string format: date-time description: >- Next Milestone date in ISO 8601 format (like YYYY-MM-DDThh:mm:ss.sssZ) example: '2025-08-01T18:03:16.325Z' currency: $ref: '#/components/schemas/currency' lead-opportunity_post: type: object description: | Core attributes of the lead-opportunity in case of creation. allOf: - $ref: '#/components/schemas/lead-opportunity_attributes' - type: object required: - partnerLeadOpportunityId - name - status - closeDate - currency revenueType: type: string enum: - UPFRONT - RENTAL_BOOKING - SUPPORT_SERVICES - SERVICES_SIGNING - EMPTY description: | The type of revenue x-enumDescriptions: UPFRONT: Upfront RENTAL_BOOKING: Rental Booking SUPPORT_SERVICES: Support Services SERVICES_SIGNING: Services Signing EMPTY: Empty offerLine: type: object description: | One of the item within an offer. properties: amount: type: number description: Amount of the offer in the desgnated currency example: 13000 offerNameId: type: string description: >- Identification of the Offer. Note: : In current state of the API, the list of valid values will be communicated directly to Dassault Systèmes Partners via email or within Dassault Systèmes Partner Swym Community. example: MDMIND00022_PUBL_ISE00002687_IPE00021337 revenueType: $ref: '#/components/schemas/revenueType' example: UPFRONT required: - offerNameId country: type: - 'null' - string description: | Country Location example: France customerLegalEntity: type: object description: identification of the target Customer Legal Entity properties: id: type: - string - 'null' description: Dassault Systèmes site identifier example: 200000000029188 dunsNumber: type: - string - 'null' description: Duns & Bradstreet identification example: 266257315 vatNumber: type: - string - 'null' description: VAT (Value Added Tax) identification number example: DE128212199 registrationId: type: - string - 'null' description: registration id of the company in the country name: type: - string - 'null' description: the targeted name example: World Company Limited city: type: - string - 'null' description: City Location example: San Francisco country: $ref: '#/components/schemas/country' addressLine1: type: - string - 'null' description: 1st line of the address example: Kraillinger Strasse 5 statePrefecture: type: - string - 'null' description: state / Prefecture addressLine2: type: - string - 'null' description: 2nd line of the address (if needed) zipCode: type: - string - 'null' description: ZIP Postal code example: 82131 websiteUrl: type: - string - 'null' description: website URL of the company example: www.world-company-limited.com required: - name - city - country customerContact: description: Customer Contact Information type: object properties: phoneNumber: type: string description: phone number of the Customer Contact example: 987654321 salutation: type: string description: 'Salution of the person : Mr., Ms., Dr., etc..' example: M. jobTitle: type: string description: Job title of the customer Contact example: Director of Reseearch & Development email: type: string description: email of the customer Contact example: john.smith@world-company.com firstName: type: string description: first name of the customer Contact example: John lastName: type: string description: lastname of the customer Contact example: Smith required: - email - firstName - lastName partnerContact: description: | Partner contact information properties: salesRepEmail: type: string description: email of the partner contact example: john.doe@best-partner.com salesRepFirstName: type: string description: first Name of the partner Contact example: John salesRepLastName: type: string description: last name of the partner contact example: Doe required: - salesRepEmail - salesRepFirstName - salesRepLastName post_leads-opportunities_data: description: request body for creating a new lead-opportunity object. type: object properties: partnerId: type: string description: Identification of partner LegalEntity in Dassault Systèmes system. example: '200000000014442' leadOpportunity: type: object $ref: '#/components/schemas/lead-opportunity_post' offerLines: type: array description: array of the various Offer Lines. minItems: 1 items: type: object $ref: '#/components/schemas/offerLine' customerLegalEntity: $ref: '#/components/schemas/customerLegalEntity' customerContacts: type: array description: Customer Contact(s) informations items: $ref: '#/components/schemas/customerContact' partnerContacts: type: array description: Partner Contact(s) informations items: $ref: '#/components/schemas/partnerContact' required: - leadOpportunity - offerLines - customerLegalEntity - partnerId 201_post_leads-opportunities: type: object description: response in case of successful operation required: - partnerLeadOpportunityId - dsLeadOpportunityId - action - info properties: partnerLeadOpportunityId: $ref: '#/components/schemas/partnerLeadOpportunityId' dsLeadOpportunityId: type: string description: Dassault Systèmes id of the lead-opportunity example: 5ZOQ-LF35OK action: type: string description: action performed example: create info: type: object description: Status of the request properties: success: type: boolean description: indicator whether request is successful or not. example: true statusCode: type: integer description: HTTP Code of the response example: 201 timestamp: oneOf: - type: string description: Timestamp of the query example: '2025-06-30T12:36:46.556Z' - type: 'null' traceId: oneOf: - type: string description: >- Identifier to be communicated to Dassault Systèmes Support in case support/investigation is required example: 3d29ece30a064ea68c3f5f4a9f785c6f - type: 'null' required: - success - statusCode error: oneOf: - type: object properties: code: type: string description: identification of the error message: type: string description: description of the error. - type: 'null' 400_post_leads-opportunities: type: object description: response in case of Bad Request operation properties: data: type: - 'null' - object info: type: object required: - success - statusCode properties: success: type: boolean description: indicator whether request is successful or not. example: false statusCode: type: integer description: HTTP Code of the response example: 400 timeStamp: type: string description: Timestamp of the query example: '2025-06-30T12:36:46.556Z' traceId: type: string description: >- Identifier to be communicated to Dassault Systèmes Support in case support/investigation is required example: 3d29ece30a064ea68c3f5f4a9f785c6f error: type: object properties: code: type: string description: identification of the error message: type: string description: description of the error. required: - data - info - error 406_leads-opportunities: type: object properties: info: type: object properties: success: type: boolean description: status of the operation statusCode: type: integer description: HTTP status code timeStamp: type: string description: timestamp of the operation traceId: type: string description: trace id to be provided for technical investigations. error: type: object properties: code: type: string description: error code message: type: string description: error message data: type: object properties: partnerLeadOpportunityId: type: 'null' dsLeadOpportunityId: type: 'null' action: type: 'null' 503_leads-opportunities: type: object description: Service Unavailable properties: info: type: object properties: success: type: boolean description: boolean to indicate if request was successful or not. example: false statusCode: type: integer description: HTTP code of the response example: 503 timestamp: type: string format: date-time description: Timestamp of the query example: '2025-06-30T12:36:46.556Z' traceId: type: string description: >- Identifier to be communicated to Dassault Systèmes Support in case support/investigation is required example: 3d29ece30a064ea68c3f5f4a9f785c6f error: type: object properties: code: type: string example: ERR899 message: type: string example: Service currently unavailable, please try again later. data: type: object properties: partnerLeadOpportunityId: description: >- Identification of the lead-opportunity in the CRM system of the Dassault Systèmes partner. type: 'null' example: 'null' dsLeadOpportunityId: description: >- Identification of the lead-opportunity in Dassault Systèmes System (MySalesPipeline). type: 'null' example: 'null' action: description: categorisation of the action performed type: 'null' example: 'null' required: - error - info 200_get_leads-opportunities: type: object description: Response in case of a successful get operation on leadsOpportunities required: - data - info properties: data: type: object properties: leadOpportunity: type: object properties: partnerLeadOpportunityId: $ref: '#/components/schemas/partnerLeadOpportunityId' dsLeadOpportunityId: type: - string - 'null' description: Dassault Systèmes id of the lead-opportunity example: 5ZOQ-LF35OK name: type: - string - 'null' description: Name assigned to the lead-opportunity example: Projekt Big-Picture Topic + MBSE (STEP 1+2) dsOwnerEmail: type: - string - 'null' description: email of the Dassault Systèmes Partner Sales Manager (PSM) example: john.doe@3ds.com status: $ref: '#/components/schemas/lead-opportunity-status' example: LEAD_OPEN forecastCategory: $ref: '#/components/schemas/forecastCategory' example: UPSIDE closeDate: type: - string - 'null' example: '2025-06-30' description: >- expected date for the closing of the sale in ISO 8601 format (YYYY-MM-DD) cometCampaignCode: type: - string - 'null' description: COMET Campaign code example: OC2DE17TAQ1C13018 reasonWon: type: - array - 'null' items: $ref: '#/components/schemas/reason_won' reasonLost: type: - array - 'null' items: $ref: '#/components/schemas/reason_lost' competitors: type: - array - 'null' description: List of the competitors items: type: string reasonWonLostComment: type: - string - 'null' description: Comment associated to WON or LOST reasons example: The Customer has no budget gtmTacticId: type: - string - 'null' description: identification of GoToMarket. description: type: - string - 'null' description: description associated to the lead-opportunity example: Projekt Dashboard - Big-Picture TopicPilotprojekt nextMilestone: type: - string - 'null' description: Description of the next activity to be done example: Next activity is to make a demo to the Customer nextMilestoneDate: type: - string - 'null' description: Next Milestone date in ISO 8601 format (YYYY-MM-DD) example: '2025-06-15' currency: $ref: '#/components/schemas/currency' approvalStatus: type: - string - 'null' engagementType: type: - string - 'null' poInformation: type: - string - 'null' poStatus: type: - string - 'null' poNumber: type: - string - 'null' sboIndicator: type: - string - 'null' sboStatus: type: - string - 'null' sboNumber: type: - string - 'null' growthType: type: - string - 'null' leadPriority: type: - string - 'null' levelOfInterest: type: - string - 'null' dsComment: type: - string - 'null' partnerImportMode: type: - string - 'null' createdDate: type: - string - 'null' modifiedDate: type: - string - 'null' offerLines: type: - array - 'null' description: array of the various Offer Lines. items: type: object $ref: '#/components/schemas/offerLine' customerLegalEntity: $ref: '#/components/schemas/customerLegalEntity' customerContact: type: - array - 'null' description: Customer Contact(s) informations items: $ref: '#/components/schemas/customerContact' partnerContact: type: - array - 'null' description: Partner Contact(s) informations items: $ref: '#/components/schemas/partnerContact' info: type: object properties: success: type: boolean description: status of the operation statusCode: type: integer description: HTTP status code timeStamp: type: - 'null' - string description: timestamp of the operation traceId: type: 'null' description: trace id to be provided for technical investigations. error: type: 'null' description: no error in case of succees 500_get_leads-opportunities: type: object description: Response in case of Bad Request for retrieving lead-opportunity details required: - data - info - error properties: partnerId: type: 'null' data: type: 'null' info: type: object required: - success - statusCode properties: success: type: boolean statusCode: type: integer timeStamp: type: string traceId: type: string error: type: object properties: code: type: string description: Error code message: type: string description: Human readable error message lead-opportunity_patch: type: object description: | Core attributes of the lead-opportunity in case of update. allOf: - $ref: '#/components/schemas/lead-opportunity_attributes' - type: object required: - partnerLeadOpportunityId patch_leads-opportunities_data: description: Request body schema for updating leads-opportunities type: object properties: partnerId: type: string description: Identification of partner LegalEntity in Dassault Systèmes system. example: '200000000014442' leadOpportunity: type: object description: Specific attributes of the lead-opportunity in case of update $ref: '#/components/schemas/lead-opportunity_patch' offerLines: type: array description: array of the various Offer Lines. items: type: object $ref: '#/components/schemas/offerLine' customerLegalEntity: $ref: '#/components/schemas/customerLegalEntity' customerContacts: type: array description: Customer Contact(s) informations items: $ref: '#/components/schemas/customerContact' partnerContacts: type: array description: Partner Contact(s) informations items: $ref: '#/components/schemas/partnerContact' required: - leadOpportunity 200_patch_leads-opportunities: type: object description: >- Response in case of successful update operation on lead-Opportunities object required: - data - info properties: data: type: object properties: partnerLeadOpportunityId: type: string dsLeadOpportunityId: type: string action: type: string info: type: object properties: success: type: boolean description: status of the operation statusCode: type: integer description: HTTP status code timeStamp: type: - 'null' - string description: timestamp of the operation traceId: type: 'null' description: trace id to be provided for technical investigations. error: type: 'null' description: no error in case of succees 400_patch_leads-opportunities: type: object description: >- Response in case of Bad Request operation for updating leadsOpportunities object required: - data - info - errors properties: data: type: object info: type: object required: - success - statusCode properties: success: type: boolean statusCode: type: integer estimateSearchCount: type: integer errors: type: object post_leads-opportunities_search: description: Request body schema for searching leads-opportunities type: object properties: data: type: array items: type: object properties: modifiedDate: type: object description: >- Search criterion on the last modification date/time of the leads-opportunities. The maximum time window allowed for the search is **1 week / 7 days** (between `fromDate`and `toDate`, calculated time to time). Both lower (`fromDate`) and upper (`toDate`) bounds need to be provided as no implict range calculation is done. Lower and upper bounds need to be consistent : `fromDate` has to be anterior to `toDate`. properties: fromDate: type: string format: date-time description: >- Lower bound to be considererd for the last modification date/time of the leads-opportunities. This property represents a timestamp in UTC format, following the ISO 8601 standard. All date-time values must be provided in Coordinated Universal Time (UTC). example: '2024-08-01T14:30:00Z' toDate: type: string format: date-time description: >- Upper bound to be considererd for the last modification date/time of the leads-opportunities. This property represents a timestamp in UTC format, following the ISO 8601 standard. All date-time values must be provided in Coordinated Universal Time (UTC). example: '2024-08-08T08:30:00Z' required: - fromDate - toDate partnerLeadOpportunityId: type: - array - string description: >- Search criterion on the id of the leads-opportunities as defined in partner CRM System. This search criterion can be used for 2 main use cases : - Exact search for a particular lead-opportunitity id from Partner CRM system. - Set the exact id searched for (e.g "PARTNER-ID-1234") - Retrieval of all leads-opportunitities that do not have a partnerLeadOpportunityId defined in Dassault Systèmes CRM application (MySalesPipeline). - These are typically marketing leads on which update by Partner could be required. - Simply set an empty string ("") examples: - PARTNER-ID-1234 - '' anyOf: - required: - modifiedDate - required: - partnerLeadOpportunityId required: - data 200_post_leads-opportunities_search: description: Response body schema for searching leads-opportunities type: object properties: info: type: object properties: success: type: boolean description: status of the operation statusCode: type: integer description: HTTP status code timeStamp: type: - string description: timestamp of the operation traceId: type: string description: trace id to be provided for technical investigations. error: type: 'null' description: no error in case of succees data: type: array items: type: object description: >- Dassault Systèmes lead-opportunities list of id corresponding to the search criteria properties: dsLeadOpportunityId: type: array description: list of Ids items: type: string required: - data - info portfolio-items_data: type: object description: A sales portfolio-item. properties: salesPortfolioType: type: string description: type of portfolio item example: Brand salesPortfolioInfrastructure: type: string description: infrastructure type example: On Premise salesPortfolioisOrderable: type: boolean description: Whether or not the item can be ordered example: true salesPortfolioLevel1: type: string description: Level 1 of the description of the portfolio item example: 3DEXPERIENCE salesPortfolioLevel2: type: string description: Level 2 of the description of the portfolio item example: Simulation salesPortfolioLevel3: type: string description: Level 3 of the description of the portfolio item example: Design to Manufacturing Process salesPortfolioId: type: string description: type of portfolio item example: CLASS00002_ONPR_PRTF077_SOL001277 info_response_base_attributes: type: object description: Global Information on the operation requested. properties: success: type: boolean description: true if operation succeeded or false in case of error. example: true statusCode: type: integer description: HTTP return code of the operation example: 200 estimatedSearchCount: type: integer description: Total number of Results. example: 6027 info_response_portfolio-items: allOf: - $ref: '#/components/schemas/info_response_base_attributes' - type: object properties: timeStamp: type: string format: date-time description: Timestamp of the operation. example: '2025-08-14T07:45:59.000Z' required: - success - statusCode - timeStamp - estimatedSearchCount 200_get_portfolio-items_search: type: object description: Response in case of a successful search operation on portfolio-items required: - data - info properties: data: type: array items: $ref: '#/components/schemas/portfolio-items_data' info: $ref: '#/components/schemas/info_response_portfolio-items' 400_get_portfolio-items_search: type: object description: >- Response in case of Bad Request operation for updating leadsOpportunities object required: - info - error properties: info: $ref: '#/components/schemas/info_response_portfolio-items' error: type: object properties: code: type: string description: Error code example: ERROR_004 message: type: string description: Human readable error message example: '#top should be a positive, non zero integer' required: - code - message examples: post_leads-opportunities_lead: summary: Basic Request for Creation of a lead description: >- Minimal Request with mandatory attributes to create a lead with a single Offer Line, no customer Contact or partner contact. value: partnerId: '200000000014442' leadOpportunity: partnerLeadOpportunityId: PARTNER-CRM-LEAD-1A8R name: Projekt Big-Picture Topic + MBSE (STEP 1+2) status: LEAD_OPEN closeDate: '2025-06-01T18:46:51.326Z' description: Projekt Dashboard - Big-Picture TopicPilotprojekt currency: EUR offerLines: - amount: 13800 offerNameId: 3DEXPERIENCE_Design/Engineering_On_Premise revenueType: UPFRONT customerLegalEntity: name: NEW CUSTOMER CORPORATION city: Stockdorf country: Germany post_leads-opportunities_oppy: summary: Request for creation of an opportunity. description: >- Minimal Request with mandatory attributes to create an ooportunity with a single Offer Line value: partnerId: '200000000014442' leadOpportunity: partnerLeadOpportunityId: PARTNER-CRM-OPPY-1A8R name: Transformation Project at NewCustomer status: OPPY_OPEN closeDate: '2025-06-01T18:46:51.326Z' currency: EUR offerLines: - amount: 5490 offerNameId: 3DEXPERIENCE_Design/Engineering_On_Premise revenueType: RENTAL_BOOKING customerLegalEntity: name: string city: PARIS country: FRANCE patch_update-lead_status: summary: Example 1, updates status of lead. description: >- Basic example of request body to update an existing lead-opportunity object. value: leadOpportunity: partnerLeadOpportunityId: CRM-LEAD-1234 status: QUALIFIED patch_update-lead_nextMilestone: summary: Example 2, updates nextMilestone of lead (date & action) description: > Basic example of request body to update an existing lead-opportunity object. Note : only identification attributes of the lead-opportunity + modified attributes are required. value: leadOpportunity: partnerLeadOpportunityId: CRM-LEAD-1234 nextMilestone: Customer Demo nextMilestoneDate: '2025-06-01T18:46:51.326Z' x-tagGroups: - name: Authentication tags: - apikeys - name: Order tags: - orders - name: Sales tags: - leads-opportunities - portfolio-items - name: Schemas tags: - Schemas